package com.ds.infra.ibatis.session;

import java.io.Closeable;
import java.util.List;

/**
 * 作用：定义了与数据库交互的接口，包括增删改查等操作。
 *
 * @author WeiShaoying
 */
public interface SqlSession extends Closeable {

    <T> T selectOne(String statement);

    <T> T selectOne(String statement, Object parameter);

    <E> List<E> selectList(String statement, Object parameter);

    int insert(String statement);

    int insert(String statement, Object parameter);

    int update(String statement);

    int update(String statement, Object parameter);

    int delete(String statement);

    int delete(String statement, Object parameter);

    Configuration getConfiguration();

    <T> T getMapper(Class<T> type);

    void close();
}
